﻿#ifndef CTaskRuleDlg_H
#define CTaskRuleDlg_H
/********************************************************************************
** @ Date:2024/04/19
** @ Author: HanJiaXin
** @ Description:任务规则对话框
** @ Version:1.0.0
** @ ClassName:
** @ Fun:
********************************************************************************/
#include <QString>
#include <QDialog>
#include <QButtonGroup>
#include <QCheckBox>
#include "ui_CTaskRuleDlg.h"

//替换参数结构体
struct SReplaceData
{
	int m_nTimeType;//时间枚举
	QString m_sNewTaskGuid;//新任务的Guid
	QString m_sOldTaskGuid;//旧任务的guid
};

class CTaskRuleDlg : public QDialog
{
	Q_OBJECT

public:
	CTaskRuleDlg(QString sSceneGuid,QString sNewTaskGuid,QString sNewTaskName,int nPeriodType,QWidget *parent = nullptr);
	~CTaskRuleDlg();

	void setData();//设置数据
private:
	void setTitle(QString sTitle);//设置标题
	void setStyleSheetFile();     //设置样式文件
	void initConnect();           //初始化槽函数连接
	void initData();              //初始化界面数据

public slots:
	void slotPushButtonSaveClicked();//点击保存按钮槽函数
	void slotPushButtonCancleClicked();//点击保存按钮槽函数

private slots:
	void slotAddToList();  //槽函数添加到替换列表

private:
	Ui::CTaskRuleDlgClass ui;
	QVector<int> m_vecTimeType;//此任务的需要的时间类型
	QMap<QString, QString> m_mapTaskName;//任务名称
	QMap<int, QString> m_mapTimeType;//将1天时间分为48份 
	QMap<int, QString> m_mapRule;//任务规则
	QMap<int, SReplaceData> m_mapReplaceData;//替换列表
	QMap<QCheckBox*, int> m_mapChecBox;
	QString m_sGuid;//场景Guid
	int m_nPeriodType;
	QString m_sNewTaskGuid;//新创建的任务的Guid
	QString m_sNewTaskName;//新创建的任务的名称
};

#endif